package com.sp.biz.user.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * <p>
 * 
 * </p>
 *
 * @author 
 * @since 2025-07-16 18:47:51
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("sys_user_info")
@Schema(name = "UserInfoDO对象", description = "")
public class UserInfoDO {

    @TableId(value = "ID", type = IdType.AUTO)
    private Long id;

    @Schema(name="用户编码")
    @TableField("USER_CODE")
    private String userCode;

    @Schema(name="用户姓名")
    @TableField("USER_NAME")
    private String userName;

    @Schema(name="登录账号")
    @TableField("LOGIN_ACCOUNT")
    private String loginAccount;

    @Schema(name="密码")
    @TableField("PASSWORD")
    private String password;

    @Schema(name="用户类型 0系统用户(企业) 1 渠道用户（B端） 2 消费者用户（C端）")
    @TableField("USER_TYPE")
    private String userType;

    @Schema(name="电话号码")
    @TableField("PHONE_NUM")
    private String phoneNum;

    @Schema(name="是否启用 1 是 0 否")
    @TableField("IS_ENABLE")
    private String isEnable;

    @Schema(name="是否被删除 1 是 0 否")
    @TableField("IS_DELETE")
    private String isDelete;

    @Schema(name="备注")
    @TableField("REMARK")
    private String remark;

    @TableField(value = "CREATOR_ID", fill = FieldFill.INSERT)
    private Long creatorId;

    @TableField(value = "UPDATER_ID", fill = FieldFill.INSERT_UPDATE)
    private Long updaterId;

    @Schema(name="登录次数")
    @TableField("LOGIN_TOTAL")
    private Integer loginTotal;

    @Schema(name="最后一次登录时间")
    @TableField("LAST_LOGIN_TIME")
    private LocalDateTime lastLoginTime;

    @Schema(name="创建类型 0 系统自建 1 手动创建 2 同步")
    @TableField("CREATE_FLAG")
    private String createFlag;

    @Schema(name="创建时间")
    @TableField(value = "CREATE_TIME", fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    @Schema(name="修改时间")
    @TableField(value = "UPDATE_TIME", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;


}
